import axios from 'axios'
import config from './config'

const instance = axios.create({
  baseURL: config.dev,
  timeout: 1000
})

// 添加请求拦截器
instance.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
instance.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  return response
  // if (response.status !== 200) {
  //   return response
  // } else {
  //   return {
  //     msg: '出错了'
  //   }
  // }
}, function (error) {
  // 对响应错误做点什么
  return Promise.reject(error);
});

export function get(url, params = {}) {
  // 写法一
  return instance.get(url, {
    params
  })
  .then((result) => {
    return result.data
  })
  .catch((e) => {
    return Promise.inject(e)
  })

  // 写法二
  // return new Promise((resolve, reject) => {
  //   instance.get(url, {
  //     params
  //   })
  //   .then((result) => {
  //     resolve(result.data)
  //   })
  //   .catch((err) => {
  //     reject(err)
  //   })
  // })

  // 写法三
  // return new Promise(async (resolve, reject) => {
  //   try {
  //     return await instance.get(url, {
  //       params
  //     })
  //   } catch (e) {
  //     reject(e)
  //   }
  // })
}

export {
  instance
}